The present invention relates to the persistence object-relational mapping (ORM, O/RM, and O/R mapping) in computer software, a programming technique for converting data between incompatible type systems in relational databases and object-oriented programming languages.
Persistence refers to the tendency of application data to outlive an application process. Java is an object-oriented programming model expressly designed for use in the distributed environment of the Internet. (JAVA is a trademark of the Oracle Corporation in the United States or other countries.) Java enforces and can be used to create complete applications that may run on a single computer or be distributed among servers and clients in a network. It can also be used to build a small application module or applet for use as part of a web page. Applets make it possible for a web page user to interact with the page. It is generally desired that the state of some Java objects live (persist) beyond the scope of a Java Virtual Machine (JVM) which interprets byte code into code that will run on extant computer hardware, so that the same state is available later.
Object-Relational Impedance Mismatch (sometimes called a paradigm mismatch) refers to problems in working with both object models and relational database models (RDBMS). RDBMSs represent data in a tabular format (for example, a spreadsheet), whereas object-oriented languages, such as Java, represent it as an interconnected graph of objects. Loading and storing graphs of objects using a tabular relational database may result in mismatch problems; for example, an object model may have more classes than a number of corresponding tables in the database (the object model is more granular than the relational model). Further, a RDBMS defines exactly one notion of ‘sameness’: the primary key. Java, however, defines both object identity (a==b) and object equality (a.equals(b)).